<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Title</title>
    <style>
        [v-cloak] {
            display: none;
        }
    </style>
</head>
<body>
<!--Vue实例所控制的这个元素区域，就是我们的V-->
<div id="app">
    <p v-cloak>{{msg}}</p>
    <h4 v-text="msg"></h4>
    <div>{{msg2}}</div>
    <div v-text="msg2"></div>
    <div v-html="msg2"></div>
    <!--    默认v-text是没有闪烁问题的-->
    <!--    v-text会覆盖元素中原本的内容，但是插值表达式，只会替换自己的这个站位符，不会把整个元素的内容清空-->
<!--    <input type="button" value="按钮" v-bind:title="mytitle + '123'">-->
<!--    注意：v-bind:指令可以被简写为：要绑定的属性-->
<!--    v-bind中，可以写合法的JS表达式-->
<!--        Vue 中提供了 v-on:事件绑定机制-->
<!--    <input type="button" value="按钮" :title="mytitle + '123'" v-on:click="alert('hello')">-->
<!--    <input type="button" value="按钮" :title="mytitle + '123'" v-on:click="show">-->
<!--    <input type="button" value="按钮" :title="mytitle + '123'" @mouseover="show">-->
    <input type="button" value="按钮" :title="mytitle + '123'" @click="show">
</div>
<script src="./lib/vue.min.js"></script>
<script>
    // 我们new出来的这个vm对象，就是我们MVVM中的VM调度者
    var vm = new Vue({
        el: '#app',            //表示，当我们new的这个vue实例，要控制页面上的哪个区域
        // 这里的data就是MVVM中的M,专门用来保存每个页面的数据
        data: {     // data属性中，存放的是el中要用到的数据
            msg: '123', //通过Vue提供的指令，很方便的就能把数据渲染到页面上，程序员不在手动操作DOM元素了
            msg2: '<h1>哈哈，我是一个大大的h1,我大，我骄傲</h1>',
            mytitle: '这是一个自己定义的title'
        },
        methods:{ // 这个methods属性中定义了当前Vue实例所有可用的方法
            show:function(){
                alert('Hello')
            }
        }
    })
</script>
</body>
</html>

<!--v-bind Vue提供的属性绑定机制 缩写是 :-->
<!--v-on  Vue提供的事件绑定机制 缩写是 @-->